package com.ruoyi.system.saleorder.service;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.system.model.domain.GoodsInfo;
import com.ruoyi.system.saleorder.domain.SaleGoodsAfter;
import com.ruoyi.system.saleorder.domain.SaleGoodsAfterReq;

/**
 * 售后Service接口
 *
 * @author ruoyi
 * @date 2024-06-07
 */
public interface ISaleGoodsAfterService {
    /**
     * 查询售后
     *
     * @param id 售后主键
     * @return 售后
     */
    public SaleGoodsAfter selectSaleGoodsAfterById(Long id);

    /**
     * 查询售后列表
     *
     * @param saleGoodsAfter 售后
     * @return 售后集合
     */
    public List<SaleGoodsAfter> selectSaleGoodsAfterList(SaleGoodsAfterReq saleGoodsAfter);

    /**
     * 新增售后
     *
     * @param saleGoodsAfter 售后
     * @return 结果
     */
    public int insertSaleGoodsAfter(SaleGoodsAfter saleGoodsAfter);

    /**
     * 修改售后
     *
     * @param saleGoodsAfter 售后
     * @return 结果
     */
    public int updateSaleGoodsAfter(SaleGoodsAfter saleGoodsAfter);

    /**
     * 转处理
     *
     * @param id 售后
     * @return 结果
     */
    public int dispose(Long id);

    /**
     * 批量删除售后
     *
     * @param ids 需要删除的售后主键集合
     * @return 结果
     */
    public int deleteSaleGoodsAfterByIds(Long[] ids);

    /**
     * 删除售后信息
     *
     * @param id 售后主键
     * @return 结果
     */
    public int deleteSaleGoodsAfterById(Long id);

    /**
     * 转售后
     *
     * @param goodsInfo 商品主键
     * @param taskType  类型 1 售前 2售后
     * @return 结果
     */
    public void pushAfter(GoodsInfo goodsInfo, int taskType ,Long userId);

    /**
     * 完结
     *
     * @param id
     * @return
     */
    public int overTask(Long id);

    /**
     * 校验单号是否存在
     * @param no
     * @return
     */
    void checkNo(String no, Long id);
}
